package Bio::Tools::MlstI;

use base qw(Bio::Root::Root);
use 5.008008;
use strict;
use warnings;
use Data::Dumper;

require Exporter;

our %EXPORT_TAGS = ( 'all' => [ qw(

) ] );

our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );

our @EXPORT = qw(

);

our $VERSION = '0.50';

# Create a new instance of an MLST object
sub new{
  my $self=shift;
  $self->throw_not_implemented();
}
# Perform a BLAST against a locus database with a sequence (or Seq) query.
# Return a searchIO object.
sub blast{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get a Seq of an allele of a locus
sub getAllele{
  my $self=shift;
  $self->throw_not_implemented();
}
# How many alleles are there in the locus database?
sub getAlleleCount{
  my $self=shift;
  $self->throw_not_implemented();
}
# What is the URL where this locus database resides?
sub getAlleleSequencesURL{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get an array of all Seqs from a locus database.
sub getAlleles{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get the clonal complex of an ST
sub getClonalComplex{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get all clonal complexes from a database
sub getClonalComplexes{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get a list of all databases from a site
sub getDatabaseList{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get a forward consensus sequence of a locus
sub getForwardConsensus{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get the reverse consensus sequence of a locus
sub getReverseConsensus{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get the allele profile of an ST
sub getProfile{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get the number of profiles/STs in a database
sub getProfileCount{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get the URL where the list of profiles resides
sub getProfileListURL{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get isolates from the database that have a given profile.  
# Specify the number of loci to match with the argument match 
sub getRelatedIsolateIdsByProfile{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get the isolates from the database that have a given ST
sub getRelatedIsolateIdsByST{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get the profiles that match the (possibly incomplete)profile given
sub getRelatedProfilesByProfile{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get related profiles, given an ST
sub getRelatedProfilesByST{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get all STs that match a given profile
sub getRelatedSTsByProfile{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get all STs that match a given ST
# Specify the number of loci to match with the argument match 
sub getRelatedSTsByST{
  my $self=shift;
  $self->throw_not_implemented();
}
# Get an array of ST(s) by a profile
sub getSTsByAlleles{
  my $self=shift;
  $self->throw_not_implemented();
}
# Returns a list of isolate ids that match all fields. 
# Searching is not case-sensitive. 
# Any number of fields can be passed as arguments. 
# By passing an exactMatch boolean parameter, you can set whether exact or partial matches are used.
sub isolateQuery{
  my $self=shift;
  $self->throw_not_implemented();
}
# perform a blast against only one locus
sub locusBlast{
  my $self=shift;
  $self->throw_not_implemented();
}
# Finds a database match to an allele sequence. 
# returns a hash {result=>$result,diffs=>array({position,nucleotide1,nucleotide2}),...)}
# $result is the match
# diffs is an array of hashes of the substitutions
sub locusQuery{
  my $self=shift;
  $self->throw_not_implemented();
}

1;
__END__
# documentation for the module

=head1 NAME

Bio::Tools::MlstI - Perl extension for the interface for MLST.  Not to be used directly.

See Mlst module instead.

=head1 SYNOPSIS

Not to be used directly

=head1 DESCRIPTION

MLST is used for interfacing with pubmlst.org.  In the future, it 
should allow for interfacing with all MLST sites.

=head2 EXPORT

None by default.



=head1 SEE ALSO

http://pubmlst.org/api/

=head1 AUTHOR

Lee, <lt>lskatz@gatech.edu<gt>

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2009 by Lee Katz

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.8 or,
at your option, any later version of Perl 5 you may have available.


=cut
